package com.crm.system.service.customerManager;

import com.alibaba.fastjson.JSONObject;
import com.crm.common.model.DhPageInfo;
import com.crm.model.qo.sys.ImportFailureLogQO;
import com.crm.model.vo.customerManager.CustomerImportNewVO;
import com.crm.model.vo.customerManager.UserCustomerImportVO;
import com.crm.model.vo.sys.ImportFailureLogVO;

import java.util.List;

/**
 * @ Author ：pym
 * @ Date   ：2021/2/23 10:35
 */
public interface CustomerImportService {

    /**
     * 客户导入
     * @Author pym
     * @param list 客户集合
     * @param customerPoolId 客户池ID
     * @return {@link {com.alibaba.fastjson.JSONObject}}
     */
    JSONObject importCustomer(List<CustomerImportNewVO> list, String customerPoolId);

    /**
     * 用户端客户导入
     * @Author pym
     * @Date  2021/5/18 16:41
     * @param list 客户集合
     * @param customerPoolId 客户池ID
     * @return {@link {com.alibaba.fastjson.JSONObject}}
     */
    JSONObject importUserCustomer(List<UserCustomerImportVO> list, String customerPoolId);

    /**
     * 客户冲突数据列表
     * @Author pym
     * @Date  2021/5/28 10:50
     * @param pageIndex -页码
     * @param pageSize -分页大小
     * @param importFailureLogQO -查询条件
     * @param sortName -排序列名字
     * @param sortOrder -排序规则(asc/desc)
     * @return {@link {com.crm.common.model.DhPageInfo<com.crm.model.vo.sys.ImportFailureLogVO>}}
     */
    DhPageInfo<ImportFailureLogVO> selectCustomerConflictList(Integer pageIndex, Integer pageSize,
                                                              ImportFailureLogQO importFailureLogQO,
                                                              String sortName, String sortOrder);

    /**
     * 导入失败数据列表
     * @Author pym
     * @Date  2021/5/28 13:56
     * @param pageIndex -页码
     * @param pageSize -分页大小
     * @param importFailureLogQO -查询条件
     * @param sortName -排序列名字
     * @param sortOrder -排序规则(asc/desc)
     * @return {@link {com.crm.common.model.DhPageInfo<com.crm.model.vo.sys.ImportFailureLogVO>}}
     */
    DhPageInfo<ImportFailureLogVO> selectImportFailedDataList(Integer pageIndex, Integer pageSize,
                                                              ImportFailureLogQO importFailureLogQO,
                                                              String sortName, String sortOrder);
    /**
     * 导入客户原始数据
     * @Author pym
     * @Date  2021/7/13 11:41
     * @param list 客户集合
     * @return {@link {com.alibaba.fastjson.JSONObject}}
     */
    JSONObject importCustomerRawData(List<UserCustomerImportVO> list);
}
